home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / gfx / x11 / tvtwm.lha / tvtwm / README.tvtwm < prev    next >
Text File  |  1991-06-12  |  8KB  |  203 lines

  1. For those of you like me who want to try software before reading
  2. the instructions, all you have to do to get started is add a single
  3. line to your .twmrc file.  Something like this:
  4.  
  5.   VirtualDesktop "3000x2000"
  6.  
  7. Now for the verbose description:
  8.  
  9. This is yet another, different implementation of the Virtual Desktop
  10. concept for twm.  I call this version tvtwm (Tom's Virtual twm).  It is
  11. based on the R4 version of twm with up to fix-14 installed.  This
  12. implementation is modeled after swm (Solbourne Window Manager) and
  13. includes the very nice ability to move windows into and out of the
  14. panner.  It should be noted that none of this code came from the vtwm
  15. implementation.  If you have problems and/or patches you can email me
  16. at the address at the end of this file.
  17.  
  18. If we look at different implementations of the Virtual Desktop, I think
  19. we can relate them to soft drinks:
  20.  
  21. swm   - Classic Coke  "The Real Thing"
  22. tvtwm - Diet Coke     "Same as Coke but not as sweet"
  23. vtwm  - Diet Pepsi    "Not as sweet as Coke, some people may
  24.                prefer it to any flavor of Coke"
  25.  
  26. There are pros and cons to the vtwm and swm/tvtwm implementations.  Most
  27. revolve around whether or not to use an additional window for the
  28. scrolling desktop or to simply move windows around on the actual
  29. root window.
  30.  
  31. vtwm moves windows on the actual root window, swm/tvtwm use an
  32. additional window to perform the scrolling.
  33.  
  34. Pros:
  35.   vtwm    Simple to implement.
  36.           Programs like xsetroot continue to work.
  37.  
  38.   tvtwm   Half the network traffic when the desktop scrolls,
  39.         only a ConfigureNotify event has to be sent.
  40.       Faster scrolling of the desktop.
  41.       Desktop background image will actually scroll.
  42.       Opens the door for possible multiple Virtual Desktop
  43.         windows.
  44. Cons:
  45.   vtwm      Twice as much network traffic when the desktop scrolls,
  46.         each window has to be moved and then a ConfigureNotify
  47.         event must be sent.
  48.       Slower scrolling of the desktop.
  49.       Desktop background image does not scroll.
  50.  
  51.   tvtwm      Programs like xsetroot no longer work, additional work
  52.         needs to be done to find the Virtual Desktop window.
  53.       Programs that attempt to find the size of the window
  54.         manager decoration may fail if the traverse the window
  55.         tree until they run into the actual root window.
  56.  
  57. The ICCCM states that more work needs to be done in the area of
  58. virtual root windows, so there isn't any clear answer on the right
  59. way to implement this feature.  Having said that, let me describe
  60. how I've butchered the code, what currently doesn't work, what would
  61. be nice if it worked, etc.
  62.  
  63. 1. First a description of how the panner works.  Basically,
  64.    mouse button 1 allows you to change your position in the
  65.    desktop.  Mouse button 2 allows you to drag any of the
  66.    small "virtual" windows.  During a window move operation
  67.    you can move the pointer into and out of the panner.
  68.    Resizing the panner will of course resize the desktop.
  69.  
  70. 2. I completely re-wrote the window move code.  In menus.c I 
  71.    simply commented out the window move code that is there and
  72.    didn't touch any code related to window moves in events.c.
  73.    The new window move code is in a new file called move.c.
  74.  
  75. 3. Rather than the f.nail and "NailedDown" features of vtwm, tvtwm
  76.    uses the same terminology as swm.  In tvtwm, windows that do
  77.    not move when the desktop is panned are called "sticky" windows.
  78.    There is a command called f.stick and a "Sticky" list of windows
  79.    that will be sticky when started.  Sticky windows used to always
  80.    be physically above non-sticky windows.  This is no longer the case 
  81.    but if you have gotten used to it, you can place the "StickyAbove"
  82.    keyword in your .{tv}twmrc file.  The sticky-ness of a window is
  83.    remembered during an f.restart if RestartPreviousState is set.
  84.  
  85. 4. USPosition vs. PPosition - When a window has USPosition hints
  86.    set, the window will be positioned at that exact pixel location.
  87.    When PPosition hints are set, the window will be positioned at 
  88.    the pixel location plus the current offset of the Virtual Desktop.
  89.    For example, if the desktop has been panned to +200+500 and 
  90.    a window is mapped with PPosition +100+100, the window will be
  91.    positioned at +300+600 on the desktop.
  92.  
  93. 5. How does the icon gravity stuff work in relation to different areas
  94.    of the Virtual Desktop?  I don't know, and I don't really have the
  95.    time to look into the problem.  It might be nice to have seperate icon
  96.    regions in different quadrants of the Virtual Desktop.  If you use
  97.    icon managers and make them sticky then you don't have any problems.
  98.  
  99. 6. The initialization files .tvtwmrc.<screen number> and .tvtwmrc will
  100.    be attempted before .twmrc.<screen number> .twmrc.
  101.  
  102.  
  103. New Variables:
  104.  
  105. VirtualDesktop "WIDTHxHEIGHT"
  106.   This variable simply specified the initial size of the Virtual Desktop.
  107.   Specifying this variable enables the Virtual Desktop feature.
  108.   Why didn't I use the same syntax as vtwm and also specify the panner
  109.   scale and geometry?  I don't know, lazy I guess.
  110.  
  111. VirtualDesktopBackgroundPixmap "filename"
  112.   The pixmap image to display as the background of the Virtual Desktop window.
  113.  
  114. VirtualDesktopBackground "color"
  115.   The background color of the VirtualDesktop window.  If
  116.   VirtualDesktopBackgroundPixmap is not set, the VirtualDesktop will have a
  117.   solid background of this color.
  118.  
  119. VirtualDesktopForeground "color"
  120.   This color is only used if VirtualDesktopBackgroundPixmap is set.
  121.  
  122. VirtualForeground "color" [ { window list } ]
  123.   Specifies the foreground color for the small virtual panner windows.
  124.  
  125. VirtualBackground "color" [ { window list } ]
  126.   Specifies the background color for the small virtual panner windows.
  127.  
  128. VirtualFont "5x8"
  129.   The font to use when ShowVirtualNames is specified.
  130.  
  131. ShowVirtualNames
  132.   This causes the window name to be displayed in the small virtual
  133.   panner window.  The VirtualFont is used to display the name.
  134.  
  135. PannerGeometry "+-X+-Y"
  136.   Specifies the geometry at which the panner is to be placed.  The
  137.   default is "-0-0".
  138.  
  139. PannerState "state"
  140.   This specifies the initial state of the panner.  Possible values
  141.   include "withdrawn", "iconic", and "normal".  The default state
  142.   is "normal".
  143.  
  144. PannerScale scale
  145.   This specifies the scale of the panner.  The default number is 20.
  146.  
  147. PannerBackgroundPixmap "filename"
  148.   The pixmap image to display as the background of the panner window.
  149.  
  150. PannerBackground "color"
  151.   The background color of the panner window.  If PannerBackgroundPixmap
  152.   is not set, the panner will have a solid background of this color.
  153.  
  154. PannerForeground "color"
  155.   This color is only used if PannerBackgroundPixmap is set.
  156.  
  157. ScrollDistanceX    percentage
  158. ScrollDistanceY percentage
  159.   The percentage of the display width/height to move for the f.scroll
  160.   commands
  161.  
  162. Sticky { window list }
  163.   A list of windows that will come up in a sticky state.
  164.  
  165. StickyAbove
  166.   Causes sticky windows to always be physically above non-sticky windows.
  167.  
  168. NoIconTitle [ { window list } ]
  169.   Specifies that no titles should be displayed below icons.  If the
  170.   optional window list is present then only those clients will
  171.   not have icon titles.
  172.  
  173. IconTitle { window list }
  174.   Specifies a list of clients that will have icon titles.  Useful
  175.   when NoIconTitle has been specified alone.
  176.  
  177. New Commands:
  178.  
  179. f.panner        - toggle making the panner visible
  180. f.scroll "position"    - scroll to a specific position
  181. f.scrollhome        - scroll the desktop to 0,0
  182. f.scrollup        - scroll the desktop up ScrollDistanceY
  183. f.scrolldown        - scroll the desktop down ScrollDistanceY
  184. f.scrollleft        - scroll the desktop left ScrollDistanceX
  185. f.scrollright        - scroll the desktop right ScrollDistanceX
  186. f.scrollback        - scroll back to the previous location
  187. f.panup            - same as f.scrollup
  188. f.pandown        - same as f.scrolldown
  189. f.panleft        - same as f.scrollleft
  190. f.panright        - same as f.scrollright
  191. f.stick            - toggle making a window sticky or not
  192.  
  193.  
  194. A version of xsetroot, called ssetroot has been included as an
  195. example of how to find the Virtual Desktop window.
  196.  
  197. --
  198. Tom LaStrange
  199.  
  200. Solbourne Computer Inc.    ARPA: toml@Solbourne.COM
  201. 1900 Pike Rd.              UUCP: ...!{boulder,sun}!stan!toml
  202. Longmont, CO  80501
  203.